# -*- coding: latin-1 -*-

# Primo esempio di uso di full screen interface 
import android

# la variabile droid fornisce l'accesso alle API
# e per semplicita' viene dichiarata globale
droid=android.Android()

def main():
  # valore iniziale contatori e lista incrementi
  iniziale=0;
  incrementi = [-5,1,2,3,5,8,13]
  # inizializzazione full screen utilizzando il layout xml definito sotto
  droid.fullShow(layout)
  # gestiamo gli eventi
  eventloop(iniziale,incrementi)
  # fine: eliminiamo lo schermo
  droid.fullDismiss()


# questo loop gestisce i click sulle varie zone dello schermo 
# aggiornando il contatore
def eventloop(c,lista_incrementi):
  # scrittura valore iniziale nel campo contatore
  droid.fullSetProperty("contatore","text","Contatore: %d" % c)
  # inizializzazione della lista di incrementi
  nomi_valori = map(lambda x: "%+d" %x, lista_incrementi) # map(str,lista_incrementi)
  droid.fullSetList("lst_list",nomi_valori)  
  while True:
    event=droid.eventWait().result
    print event
    # gestisce bottoni
    if event["name"]=="click":
      id=event["data"]["id"]
      if id=="but_esci":
        return
      elif id=="but_minus":
        c -= 1
      elif id=="but_plus":
        c += 1
    # gestisce voci della lista lst_list    
    elif event["name"]=="itemclick":
      pos = int(event["data"]["position"])
      c+= lista_incrementi[pos]
    # gestisce tasti   
    elif event["name"]=="key":
      return   # exit on any key pressed
    # refresh contatore
    droid.fullSetProperty("contatore","text","Contatore: %d" % c)
  return


# questa stringa xml definisce il layout dello schermo
# notare che il contenuto dello schermo puo' essere modificato nel 
# programma, ad esempio i testi, la lista centrale, etc 
layout="""<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#006699"
  android:orientation="vertical"
  xmlns:android="http://schemas.android.com/apk/res/android">
  <TextView
    android:id="@+id/contatore"
    android:layout_width="wrap_content"
    android:layout_height="64dp"
    android:text="Inizializzazione..."
    android:textSize="30sp"
    android:textColor="#ffff00"
    android:background="#cc0000"
  />
  <ListView
    android:id="@+id/lst_list"
    android:layout_width="fill_parent"
    android:layout_height="240dp"/>
  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="80dp"
    android:orientation="horizontal">
    <Button
      android:id="@+id/but_minus"
      android:layout_height="fill_parent"
      android:layout_width="0dp"
      android:layout_weight="1"
      android:background="#33CC99"
      android:text="-1"
      android:textSize="30sp"
      android:textColor="#ffffff"/>
    <Button
      android:id="@+id/but_esci"
      android:layout_height="fill_parent"
      android:layout_width="0dp"
      android:layout_weight="1"
      android:background="#6699FF"
      android:text="Esci"
      android:textSize="30sp"
      android:textColor="#ffffff"/>
    <Button
      android:id="@+id/but_plus"
      android:layout_height="fill_parent"
      android:layout_width="0dp"
      android:layout_weight="1"
      android:background="#33CC99"
      android:text="+1"
      android:textSize="30sp"
      android:textColor="#ffffff"/>
   </LinearLayout>
</LinearLayout>"""


if __name__ == '__main__':
    main()


